# 导入深拷贝模块，用于复制二维数组
import copy

# 输入部分：读取图像的行数n和列数m
n, m = list(map(int, input().split()))

# 创建空的二维数组存储原始图像数据
image = []
# 逐行读取图像像素值
for i in range(n):
    row = list(map(int, input().split()))  # 读取一行的像素值并转为整数列表
    image.append(row)  # 将该行添加到图像数组中

# 深拷贝原始图像到结果数组，保证边界像素值不变
result = copy.deepcopy(image)

# 对内部像素点进行平滑处理（排除四周边界）
for i in range(1, n-1):  # 行：从第2行到倒数第2行
    for j in range(1, m-1):  # 列：从第2列到倒数第2列
        # 计算当前像素点及其上下左右四个邻居的灰度值总和
        total = image[i][j] + image[i-1][j] + image[i+1][j] + image[i][j-1] + image[i][j+1]
        #         当前点    +    上方     +    下方     +    左方     +    右方
        
        # 计算平均值并四舍五入到最接近的整数
        result[i][j] = round(total / 5)

# 输出处理后的图像
for i in range(n):  # 逐行输出
    for j in range(m):  # 逐列输出
        print(result[i][j], end=" ")  # 输出像素值，以空格分隔
    print()  # 每行结束后换行